<?php

namespace Part14_ObserverMode\Code3;

require_once '../../autoload.php';

// 老板
$boss = new Boss();

// 前台小姐A
$A = new Secretary();

// 看股票的同事
$X = new StockObserver('X', $A);
$Y = new StockObserver('Y', $A);

// 看NBA的同事
$Z = new NBAObserver('Z', $A);

// 前台帮看股票的同事监听
$A->attach($X);
$A->attach($Y);

// 前台帮看NBA的同事监听
$A->attach($Z);

// X是由老板通知的，没经过前台
$A->detach($X);
$X = new StockObserver('X', $boss);
$boss->attach($X);

// 前台发现老板回来,通知所有同事
$A->setAction('老板回来了！');
$A->notify();

// 老板通知
$boss->setAction('我回来了！');
$boss->notify();